// src/utils/request.ts
import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
import { ElMessage } from 'element-plus'

// @ts-ignore
const baseUrl = import.meta.env.VITE_API_BASE_URL;
// 创建 axios 实例
const service: AxiosInstance = axios.create({
  baseURL: baseUrl || '/api', // 从环境变量读取
  timeout: 10000,
});

// 请求拦截器
service.interceptors.request.use(
  (config) => {
    // 可在此处添加 token 等通用 header
    const token = localStorage.getItem('token');
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  (response: AxiosResponse) => {
    const { data } = response;
    // 假设后端返回格式为 { code: 200, data: ..., message: '' }
     console.log('业务错误:', data.data.status);
    if (data.data.status === 100) {
      return data.data;
    } else {
      // 处理业务错误，比如弹出 message
      console.error('业务错误:', data.message)
      ElMessage.error(data.data.message);;
      return Promise.reject(new Error(data.data.message || '请求失败'));
    }
  },
  (error) => {
    // 处理 HTTP 错误（如 401、500）
    if (error.response?.status === 401) {
      // 跳转登录页等逻辑
      console.warn('未授权，请重新登录');
    }
    return Promise.reject(error);
  }
);

export default service;